Technical Field
The present invention relates to code tagging and, more particularly, to identifying source code that corresponds to particular functionality or features.
Description of the Related Art
Code tagging provides an explicit association between a given function or feature of a program and the specific source code that implements the feature. Code tagging thereby aids in debugging, as a problem with a particular feature can rapidly be localized to specific regions of code, as well as future development, as new features or improvements can be more readily introduced if one can quickly find the appropriate point in the source code to add them.
Existing code tagging techniques are relatively limited in scope, focusing only on specific types of information to determine code tagging. For example, dynamic tagging uses natural language queries, feature-relevant scenarios, and feature-irrelevant scenarios with the source code and execution traces to identify frequent code portions in traces of feature-specific scenarios. The dynamic tagging approach has a high overhead and produces false negatives. Static tagging, meanwhile, is based on natural language queries to find program dependencies, concern graphs, and structural information. Static tagging produces false positives.